Even with a graphic processing unit (GPU) that employs specialized hardware for rendering three-dimensional (3-D) scenes, models, and/or objects into two-dimensional (2-D) images, rendering such images generally requires significant computation and time. As a result, an image may be rendered based on parameters calculated before rendering the image that ultimately are inconsistent with actual conditions at a time that the image is displayed. For example, a “best guess” estimate of a user's orientation for a future time that is used to render an image may not match the user's actual orientation at that future time, resulting in a mismatch between the rendered image and conditions when the rendered image is being displayed.
One approach to reducing such mismatches is to perform a post-rendering transformation of a rendered image that is performed in a significantly reduced amount of time relative to the rendering of the rendered image. For example, an initial image may be rendered based on an early estimate of parameters, and a post-rendering transformation of the initial image may be performed based on a new, more accurate, estimate of the parameters performed shortly before the image is displayed. However, conventional approaches have faced tradeoffs between latency and the complexity of image transformations, since more complex image transformations required more time to complete. Also, since an amount of time to perform a post-image transformation may not be known in advance, post-image transformations may be initiated at earlier times to allow for “worst case” scenarios that often do not occur, resulting in missed opportunities to further reduce latency. Conventionally, such issues have been addressed by using simple image transformations, such as affine or projective transformations, to realize low latency post-rendering transformation.